package br.unp.tasi.loja.repositorios;

import br.unp.tasi.loja.entidades.Pedido;
import br.unp.tasi.loja.entidades.Usuario;
import java.util.List;

/**
 *
 * @author jfrank
 */
public interface RepositorioPedido extends RepositorioBasico {

  /**
   * Retorna pedido aberto do usuario. Se nao houver um pedido aberto, o cria.
   * @param usuario
   * @return
   */
  public Pedido localizarPedidoAberto(Usuario usuario);

  /**
   * Adiciona um novo item ao pedido
   * @param usuario
   * @param produto_id
   * @param quantidade
   */
  public void adicionarItem(Usuario usuario, Long produto_id, Long quantidade);

  /**
   * Remove item do pedido
   * @param pedido
   * @param id
   */
  public void removerItemPedido(Pedido pedido, Long id);

  /**
   * Retorna pedidos anteriores do usuario
   * @param usuario
   * @return
   */
  public List<Pedido> localizarPedidosAnteriores(Usuario usuario);
}
